如何使用正则表达式在Pandas中过滤行?
正则表达式(regex)是定义搜索模式的字符序列。要使用正则表达式在Pandas中过滤行,我们可以使用 str.match() 方法。
更多Pandas相关文章,请阅读:Pandas 教程
步骤
创建可变大小的二维异构表格数据, df 。
打印输入的DataFrame, df 。
为表达式初始化一个变量 regex 。提供一个字符串值作为regex,例如,字符串 ‘J.*’ 将过滤所有以字母’J’开头的条目。
使用 df. column_name.str.match(regex)根据提供的regex过滤给定列名中的所有条目。
示例
import pandas as pd
df = pd.DataFrame(
dict(
name=['John', 'Jacob', 'Tom', 'Tim', 'Ally'],
marks=[89, 23, 100, 56, 90],
subjects=["Math", "Physics", "Chemistry", "Biology", "English"]
)
)
print "输入DataFrame如下:\n", df
regex = 'J.*'
print "应用后", regex, "DataFrame如下:\n", df[df.name.str.match(regex)]
regex = 'A.*'
print "应用后", regex, "DataFrame如下:\n", df[df.name.str.match(regex)]
输出
输入DataFrame如下:
name marks subjects
0 John 89 Math
1 Jacob 23 Physics
2 Tom 100 Chemistry
3 Tim 56 Biology
4 Ally 90 English
应用后 J.* DataFrame如下:
name marks subjects
0 John 89 Math
1 Jacob 23 Physics
应用后 A.* DataFrame如下:
name marks subjects
4 Ally 90 English
|